[프로그래머스] 가장 먼 노드 (파이썬)

문제

문제 링크

풀이

백준 18352번(특정 거리의 도시 찾기) 문제를 풀고 나니 이 문제는 거의 똑같아서 쉬웠다!

이 문제 역시 모든 간선의 거리가 1로 동일하기 때문에 BFS 알고리즘으로 풀이가 가능했다.

다만 그래프를 만들 때 양방향 연결이라는 것만 주의하면 된다.

from collections import deque

def solution(n, vertex):
    graph = [[] for _ in range(n+1)]
    values = [-1]*(n+1)
    values[1] = 0

    for v in vertex:
        graph[v[0]].append(v[1])
        graph[v[1]].append(v[0])  # 양방향 연결

    deq = deque([1])   
    while deq:
        now = deq.popleft()
        for next in graph[now]:
            if values[next] == -1:
                values[next] = values[now]+1
                deq.append(next)

    m = max(values)
    return values.count(m)

Written by@[hyem]
Hyem's Dev Note

GitHub